/**
 * Copyright(c) 2014 Xunton Solutions
 *
 * History:
 *   15-9-18 下午5:43 Created by dwzhang
 */
package com.jade.bss.weixin.api.pay.protocol;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import com.jade.bss.weixin.api.protocol.xml.Response;

/**
 * 退款响应。.
 *
 * @author <a href="mailto:dwzhang@xunton.com">dwzhang</a> 
 * @version 1.0 15-9-18 下午5:43
 */
@XmlRootElement (name = "xml")
@XmlAccessorType (XmlAccessType.FIELD)
public class RefundResponse extends Response
{
    //微信生成的订单号，在支付通知中有返回
    @XmlElement (name = "transaction_id")
    private String transactionId;
    //商户侧传给微信的订单号
    @XmlElement (name = "out_order_no")
    private String outOrderNo;
    //商户系统内部的退款单号，商户系统内部唯一，同一退款单号多次请求只退一笔
    @XmlElement (name = "out_refund_no")
    private String outRefundNo;
    //微信退款单号
    @XmlElement (name = "refund_id")
    private String refundId;
    //ORIGINAL—原路退款     BALANCE—退回到余额
    @XmlElement (name = "refund_channel")
    private String refundChannel;

    //订单总金额，单位为分，只能为整数
    @XmlElement (name = "total_fee")
    private int totalFee;
    //退款总金额，订单总金额，单位为分，只能为整数
    @XmlElement (name = "refund_fee")
    private int refundFee;
    //货币类型
    @XmlElement (name = "fee_type")
    private String feeType;
    //现金支付金额，单位为分，只能为整数
    @XmlElement (name = "cash_fee")
    private int cashFee;
    //现金退款金额，单位为分，只能为整数，
    @XmlElement (name = "cash_refund_fee")
    private int cashRefundFee;
    //代金券或立减优惠退款金额=订单金额-现金退款金额，注意：立减优惠金额不会退回
    @XmlElement (name = "coupon_refund_fee")
    private int couponRefundFee;
    //代金券或立减优惠使用数量
    @XmlElement (name = "coupon_refund_count")
    private int couponRefundCount;
    //代金券或立减优惠ID
    @XmlElement (name = "coupon_refund_id")
    private String couponRefundId;

    public String getTransactionId()
    {
        return transactionId;
    }

    public void setTransactionId(String transactionId)
    {
        this.transactionId = transactionId;
    }

    public String getOutOrderNo()
    {
        return outOrderNo;
    }

    public void setOutOrderNo(String outOrderNo)
    {
        this.outOrderNo = outOrderNo;
    }

    public String getOutRefundNo()
    {
        return outRefundNo;
    }

    public void setOutRefundNo(String outRefundNo)
    {
        this.outRefundNo = outRefundNo;
    }

    public String getRefundId()
    {
        return refundId;
    }

    public void setRefundId(String refundId)
    {
        this.refundId = refundId;
    }

    public String getRefundChannel()
    {
        return refundChannel;
    }

    public void setRefundChannel(String refundChannel)
    {
        this.refundChannel = refundChannel;
    }

    public int getTotalFee()
    {
        return totalFee;
    }

    public void setTotalFee(int totalFee)
    {
        this.totalFee = totalFee;
    }

    public int getRefundFee()
    {
        return refundFee;
    }

    public void setRefundFee(int refundFee)
    {
        this.refundFee = refundFee;
    }

    public String getFeeType()
    {
        return feeType;
    }

    public void setFeeType(String feeType)
    {
        this.feeType = feeType;
    }

    public int getCashFee()
    {
        return cashFee;
    }

    public void setCashFee(int cashFee)
    {
        this.cashFee = cashFee;
    }

    public int getCashRefundFee()
    {
        return cashRefundFee;
    }

    public void setCashRefundFee(int cashRefundFee)
    {
        this.cashRefundFee = cashRefundFee;
    }

    public int getCouponRefundFee()
    {
        return couponRefundFee;
    }

    public void setCouponRefundFee(int couponRefundFee)
    {
        this.couponRefundFee = couponRefundFee;
    }

    public int getCouponRefundCount()
    {
        return couponRefundCount;
    }

    public void setCouponRefundCount(int couponRefundCount)
    {
        this.couponRefundCount = couponRefundCount;
    }

    public String getCouponRefundId()
    {
        return couponRefundId;
    }

    public void setCouponRefundId(String couponRefundId)
    {
        this.couponRefundId = couponRefundId;
    }
}
